<div class="form-group hz-input {$::form.htmlClass$}"
     ng-class="{'has-error': form.disableErrorState !== true && hasError(), 'has-success': form.disableSuccessState !== true && hasSuccess(), 'has-feedback': form.feedback !== false }">
  <label class="control-label {$::form.labelHtmlClass$}" ng-class="{'sr-only': !showTitle()}" for="{$::form.key.slice(-1)[0]$}">
    <span>{$::form.title$}</span>
    <span ng-if="form.required" class="hz-icon-required fa fa-asterisk"></span>
  </label>

  <input ng-if="!form.fieldAddonLeft && !form.fieldAddonRight"
         ng-show="form.key"
         type="{$::form.type$}"
         step="{$::form.step$}"
         sf-changed="form"
         placeholder="{$::form.placeholder$}"
         class="form-control {$::form.fieldHtmlClass$}"
         id="{$::form.key.slice(-1)[0]$}"
         sf-field-model
         ng-disabled="form.readonly"
         schema-validate="form"
         name="{$::form.key.slice(-1)[0]$}"
         aria-describedby="{$::form.key.slice(-1)[0] + 'Status'$}">

  <div ng-if="form.fieldAddonLeft || form.fieldAddonRight"
       ng-class="{'input-group': (form.fieldAddonLeft || form.fieldAddonRight)}">
    <span ng-if="form.fieldAddonLeft"
          class="input-group-addon"
          ng-bind-html="form.fieldAddonLeft"></span>
    <input ng-show="form.key"
           type="{$::form.type$}"
           step="{$::form.step$}"
           sf-changed="form"
           placeholder="{$::form.placeholder$}"
           class="form-control {$::form.fieldHtmlClass$}"
           id="{$::form.key.slice(-1)[0]$}"
           sf-field-model
           ng-disabled="form.readonly"
           schema-validate="form"
           name="{$::form.key.slice(-1)[0]$}"
           aria-describedby="{$::form.key.slice(-1)[0] + 'Status'$}">

    <span ng-if="form.fieldAddonRight"
          class="input-group-addon"
          ng-bind-html="form.fieldAddonRight"></span>
  </div>

  <span ng-if="form.feedback !== false"
        class="form-control-feedback"
        ng-class="evalInScope(form.feedback) || {'fa': true, 'fa-check': hasSuccess(), 'fa-times': hasError() }"
        aria-hidden="true"></span>

  <span ng-if="hasError() || hasSuccess()"
        id="{$::form.key.slice(-1)[0] + 'Status'$}"
        class="sr-only">{$ hasSuccess() ? '(success)' : '(error)' $}</span>

  <div class="help-block" sf-message="form.description"></div>
</div>
